// samsting : this file is auto create.

#ifndef ALIYUN_Ons_OnsConsumerTimeSpanResponse_H_
#define ALIYUN_Ons_OnsConsumerTimeSpanResponse_H_

#include "core/acs_response.h"

namespace aliyun { namespace Ons {

class OnsConsumerTimeSpanResponse : public AcsResponse {
public:
  OnsConsumerTimeSpanResponse();

  class Data {
    friend class OnsConsumerTimeSpanResponse;
  public:

    class QueueTimeSpan {
      friend class OnsConsumerTimeSpanResponse;
      friend class Data;
    public:

      class MessageQueue {
        friend class OnsConsumerTimeSpanResponse;
        friend class Data;
        friend class QueueTimeSpan;
      public:
        const string& GetTopic(void) const;
        const string& GetBrokerName(void) const;
        int  GetQueueId(void) const;
      private:
        string Topic_;
        string BrokerName_;
        int    QueueId_;
      }; // MessageQueue 

      const MessageQueue& GetMessageQueue(void) const;
      int64 GetMinTimeStamp(void) const;
      int64 GetMaxTimeStamp(void) const;
      int64 GetConsumeTimeStamp(void) const;
    private:
      MessageQueue MessageQueue_;
      int64  MinTimeStamp_;
      int64  MaxTimeStamp_;
      int64  ConsumeTimeStamp_;
    }; // QueueTimeSpan 

    const std::vector<QueueTimeSpan>& GetQueueTimeSpans(void) const;
    const string& GetTopic(void) const;
    int64 GetMinTimeStamp(void) const;
    int64 GetMaxTimeStamp(void) const;
    int64 GetConsumeTimeStamp(void) const;
  private:
    std::vector<QueueTimeSpan> QueueTimeSpans_;
    string Topic_;
    int64  MinTimeStamp_;
    int64  MaxTimeStamp_;
    int64  ConsumeTimeStamp_;
  }; // Data 

  const Data& GetData(void) const;
  const string& GetHelpUrl(void) const;

private:
  Data Data_;
  string HelpUrl_;

protected:
  const char* BaseKey(void);
  void         UnmarshallerMap(std::map<string, string>& response_map);

};

} } // namespace aliyun { namespace Ons {

#endif // #ifndef ALIYUN_Ons_OnsConsumerTimeSpanResponse_H_

// end of file 
